/**
 * Copyright 2018-2020 stylefeng & fengshuonan (sn93@qq.com)
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package cn.stylefeng.guns.sys.core.properties;

import cn.stylefeng.roses.core.util.ToolUtil;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;

import java.io.File;

import static cn.stylefeng.roses.core.util.ToolUtil.getTempPath;
import static java.io.File.separator;

/**
 * guns项目配置
 *
 * @author stylefeng
 * @Date 2017/5/23 22:31
 */
@Data
public class GunsProperties {

    public static final String PREFIX = "guns";

    private Boolean kaptchaOpen = false;

    private String fileUploadPath = "E:\\zhilian06-15\\jiluFile\\";

    private String fileUploadPathCar ="E:\\zhilian06-15\\jiluFileCar\\";

    private String fileUploadPathTms ="E:\\zhilian06-15\\jiluFileTms\\";

    private Boolean haveCreatePath = false;
    
    private Boolean haveCreatePathCar = false;
    
    private Boolean haveCreatePathTms = false;

    private Boolean springSessionOpen = false;

    /**
     * session 失效时间（默认为30分钟 单位：秒）
     */
    private Integer sessionInvalidateTime = 30 * 60;

    /**
     * session 验证失效时间（默认为15分钟 单位：秒）
     */
    private Integer sessionValidationInterval = 15 * 60;


    public String getFileUploadPath() {

        //如果没有写文件上传路径,保存到临时目录
        if (ToolUtil.isEmpty(fileUploadPath)) {
            String fileUploadPath= getTempPath();
            if (!fileUploadPath.endsWith(separator)) {
                fileUploadPath = fileUploadPath + separator;
            }
            //判断目录存不存在,不存在得加上
            if (!haveCreatePath) {
                File file = new File(fileUploadPath);
                file.mkdirs();
                haveCreatePath = true;
            }
            return fileUploadPath;

        } else {
            //判断有没有结尾符,没有得加上
            if (!fileUploadPath.endsWith(separator)) {
                fileUploadPath = fileUploadPath + separator;
            }
            //判断目录存不存在,不存在得加上
            if (!haveCreatePath) {
                File file = new File(fileUploadPath);
                file.mkdirs();
                haveCreatePath = true;
            }
            return fileUploadPath;
        }
    }


    public String getFileUploadPathCar() {

        //如果没有写文件上传路径,保存到临时目录
        if (ToolUtil.isEmpty(fileUploadPathCar)) {
            String fileUploadPathCar= getTempPath();
            if (!fileUploadPathCar.endsWith(separator)) {
            	fileUploadPathCar = fileUploadPathCar + separator;
            }
            //判断目录存不存在,不存在得加上
            if (!haveCreatePathCar) {
                File file = new File(fileUploadPathCar);
                file.mkdirs();
                haveCreatePathCar = true;
            }
            return fileUploadPathCar;

        } else {
            //判断有没有结尾符,没有得加上
            if (!fileUploadPathCar.endsWith(separator)) {
            	fileUploadPathCar = fileUploadPathCar + separator;
            }
            //判断目录存不存在,不存在得加上
            if (!haveCreatePathCar) {
                File file = new File(fileUploadPathCar);
                file.mkdirs();
                haveCreatePathCar = true;
            }
            return fileUploadPathCar;
        }
    }

    public String getFileUploadPathTms() {

        //如果没有写文件上传路径,保存到临时目录
        if (ToolUtil.isEmpty(fileUploadPathTms)) {
            String fileUploadPathTms= getTempPath();
            if (!fileUploadPathTms.endsWith(separator)) {
            	fileUploadPathTms = fileUploadPathTms + separator;
            }
            //判断目录存不存在,不存在得加上
            if (!haveCreatePathTms) {
                File file = new File(fileUploadPathTms);
                file.mkdirs();
                haveCreatePathTms = true;
            }
            return fileUploadPathTms;

        } else {
            //判断有没有结尾符,没有得加上
            if (!fileUploadPathTms.endsWith(separator)) {
            	fileUploadPathTms = fileUploadPathTms + separator;
            }
            //判断目录存不存在,不存在得加上
            if (!haveCreatePathTms) {
                File file = new File(fileUploadPathTms);
                file.mkdirs();
                haveCreatePathTms = true;
            }
            return fileUploadPathTms;
        }
    }

}
